enum audio_command_type{
	C_VOID,
	C_EXIT,
	C_PLAYBACK,
	C_PAUSE,
	C_STOP,
	C_VOLUME,
	C_SEEK,
	C_LIST_ADD,
	C_LIST_DEL,
	C_LIST_CLEAR_STATUS,
	C_CHANGE_OUTPUT,
};

struct audio_command_exit{
	enum audio_command_type type;
};

struct audio_command_playback{
	enum audio_command_type type;
	bool relative_on;
	int list_offset;
	int file_offset;
};

struct audio_command_pause{
	enum audio_command_type type;
};

struct audio_command_stop{
	enum audio_command_type type;
};

struct audio_command_volume{
	enum audio_command_type type;
	bool relative_on;
	int volume_offset;	/*0 ~ 999*/
	bool mute_on;
};

struct audio_command_seek{
	enum audio_command_type type;
	bool relative_on;
	int seek_offset;	/*0 ~ 999*/
};

struct audio_command_list_add{
	enum audio_command_type type;
	char *dir_name;
	char *list_name;
};

struct audio_command_list_del{
	enum audio_command_type type;
	int offset;
};

struct audio_command_list_clear_status{
	enum audio_command_type type;
};

struct audio_command_change_output{
	enum audio_command_type type;
	char *name;
};

typedef union audio_command{
	enum audio_command_type type;
	struct audio_command_exit exit;
	struct audio_command_playback playback;
	struct audio_command_pause pause;
	struct audio_command_stop stop;
	struct audio_command_volume volume;
	struct audio_command_seek seek;
	struct audio_command_list_add list_add;
	struct audio_command_list_del list_del;
	struct audio_command_list_clear_status list_clear_status;
	struct audio_command_change_output change_output;
	
}audio_command_u;

